{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "github地址:[https://github.com/cheesezh/python_design_patterns](https://github.com/cheesezh/python_design_patterns)\n",
    "\n",
    "## 迪米特法则\n",
    "迪米特法则(LoD)，也叫最少知识原则，如果两个类不必彼此直接通信，那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一类的某一个方法的话，可以通过第三者转发这个调用。\n",
    "\n",
    "举个例子，在一个规模较大的研发团队中，产品经理想给软件加个新功能，那么产品经理应该向开发组长提出需求，由开发组长统筹安排开发资源，安排哪几个程序员去实现新功能，如果产品经理直接找到写代码的具体程序员，那就可能造成好说话的程序员背负很多需求，不好说话的程序员闲着没事，最终造成项目交付延期。\n",
    "\n",
    "迪米特法则首先强调的前提是在类的结构设计上，每一个类都应当尽量降低成员的访问权限，也就是说，一个类包装好自己的private状态，不需要让别的类知道的字段或行文就不要公开。\n",
    "\n",
    "迪米特法则其根本思想，是强调了类之间的松耦合。在设计程序的时候，类之间的耦合越弱，越有利于复用，一个处在弱耦合的类被修改，不会对有关系的类造成波及。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
